package projeto;

public class ArestaImpl implements Aresta {
	
	private /*@ spec_public nullable @*/ Vertice vinicial; //@ in _vinicial;
	//@ private represents _vinicial = vinicial;
	
	private /*@ spec_public nullable @*/  Vertice vfinal; //@ in _vfinal;
	//@ private represents _vfinal = vfinal;
	
	//@ public invariant esforco >= 0.0; 
	private /*@ spec_public @*/ double esforco; //@ in _esforco;
	//@ private represents _esforco = esforco;
	
	//@ public invariant distancia >= 0.0; 
	private /*@ spec_public @*/ double distancia; //@ in _distancia;
	//@ private represents _distancia = distancia;
	
	//@ public invariant -360.0 <= angulo && angulo <= 360.0; 
	private /*@ spec_public @*/ double angulo; //@ in _angulo;
	//@ private represents _angulo = angulo;
	
	private /*@ spec_public @*/ int numero; //@ in _numero;
	//@ private represents _numero = numero;
	
	private /*@ spec_public nullable @*/ String nome; //@ in _nome;
	//@ private represents _nome = nome;
	
	public ArestaImpl(/*@ nullable @*/ Vertice ivinicial, /*@ nullable @*/ Vertice ivfinal, double idistancia, double iangulo, int inumero){
		this.vfinal = ivfinal;
		this.vinicial = ivinicial;
		this.angulo = iangulo;
		this.distancia = idistancia;
		this.numero = inumero;
	}
	
	public Vertice getDestino() {
		return vfinal;
	}

	public double getEsforco() {
		return esforco;
	}
	
	public double getAngulo() {
		return angulo;
	}

	public double getDistancia() {
		return distancia;
	}
	
	public int getNumero() {
		return numero;
	}

	public Vertice getOrigem() {
		return vinicial;
	}

	public String getNome() {
		return nome;
	}

	public void setEsforco(double iesforco) {
		this.esforco=iesforco;
	}

	public void setDestino(Vertice destino) {
		this.vfinal=destino;
	}

	public void setOrigem(Vertice origem) {
		this.vinicial=origem;
	}

	public void setNumero(int inumero) {
		this.numero=inumero;
	}

	public void setAngulo(double iangulo) {
		this.angulo=iangulo;
	}

	public void setDistancia(double idistancia) {
		this.distancia=idistancia;
	}
	
	public void setNome(String inome) {
		this.nome = inome;
	}
}
